package com.petdog.module.tools.dto;

import lombok.Data;

import javax.validation.constraints.*;
import java.time.LocalDateTime;

/**
 * 发布寻宠启事的请求参数
 */
@Data
public class LostPetRequest {

    /**
     * 宠物名称
     */
    @NotBlank(message = "请填写宠物名称")
    @Size(min = 1, max = 20, message = "宠物名称长度需在1-20字符内")
    private String petName;

    /**
     * 宠物品种
     */
    @NotBlank(message = "请填写宠物品种")
    @Size(max = 50, message = "宠物品种长度不能超过50字符")
    private String petBreed;

    /**
     * 丢失时间
     */
    @NotNull(message = "请填写丢失时间")
    private LocalDateTime lostTime;

    /**
     * 丢失地点描述
     */
    @NotBlank(message = "请填写丢失地点")
    @Size(max = 200, message = "丢失地点描述长度不能超过200字符")
    private String lostLocation;

    /**
     * 联系电话
     */
    @NotBlank(message = "请填写联系电话")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "请输入正确的手机号码")
    private String contactPhone;

    /**
     * 补充说明
     */
    @Size(max = 200, message = "补充说明长度不能超过200字符")
    private String description;

    /**
     * 经度
     */
    @NotNull(message = "请提供位置信息")
    @DecimalMin(value = "73.0", message = "位置信息无效")
    @DecimalMax(value = "135.0", message = "位置信息无效")
    private Double longitude;

    /**
     * 纬度
     */
    @NotNull(message = "请提供位置信息")
    @DecimalMin(value = "3.0", message = "位置信息无效")
    @DecimalMax(value = "53.0", message = "位置信息无效")
    private Double latitude;
}